#include <iostream>
#include <thread>
#include <future>

// 通过在线程中对promise对象进行设置数据，其他线程通过future获取设置数据的方式实现异步任务执行的功能
void Add(int num1, int num2, std::promise<int> &prom)
{
    prom.set_value(num1 + num2);
    return;
}
int main()
{
    std::promise<int> prom;
    std::future<int> fut = prom.get_future();

    std::thread th1(Add, 11, 12, std::ref(prom));

    int result = fut.get();
    std::cout << "结果是：" << result << std::endl;

    th1.join();
}
